﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Sistema_Totem.Presentacion.Contrato.Plantillas;
using Sistema_Totem.Logica.Comandos.ComandoPlantilla;
using Sistema_Totem.Clases;
using Sistema_Totem.Clases.Fabricas;
using System.Web.UI.WebControls;
using Sistema_Totem.Logica.Fabricas;
using Sistema_Totem.Logica.Comandos;
using AjaxControlToolkit;
using System.Web.UI;

namespace Sistema_Totem.Presentacion.Presentador.Plantillas
{
    public class PresentadorConsultarPasoDos
    {
        private IContratoConsultarPasoDos _vista; 
        private Entidad _generico;
        private Comando<List<String>> _comando;
        private List<String> _plantilla;

        public PresentadorConsultarPasoDos(IContratoConsultarPasoDos vista) 
        {
            _vista = vista;
        }

        public void IniciarVista(Entidad generico)
        {
            _generico = generico;
        }

        /// <summary>
        /// Método que carga el AccordionPanel con lo que trae el comando
        /// </summary>
        public void ActualizarVista()
        { 
            _comando= FabricaComando.CrearPintar((_generico as Plantilla).Id);
            _vista.valores = _comando.Ejecutar();

            for (int i = 0; i < _vista.valores.Count; i++) 
            {
                AccordionPane aux;
                aux = new AccordionPane();
                String[] _seccion = _vista.valores[i].Split(':');
                if (_seccion[0].Equals("Seccion"))
                {
                    aux.HeaderContainer.Controls.Add(new LiteralControl(_seccion[1]));
                    aux.HeaderContainer.ID = _seccion[0] + i;
                    aux.ID = "AcordionPane" + i;
                }
                String[] _elemento = _vista.valores[i].Split(':');
                if (_elemento[0].Equals("Elemento"))
                {
                    aux.HeaderContainer.Controls.Add(new LiteralControl(_elemento[1]));                    
                    aux.ContentContainer.ID = _elemento[0] + i;
                }
                String[] _tipo = _vista.valores[i].Split(':');
                if (_tipo[0].Equals("Tipo"))
                {
                    if (_tipo[1].Equals("TextBox"))
                    {
                        TextBox texto = new TextBox();
                        texto.Width = 635;
                        texto.Height = 70;
                        texto.ID = "TextBox" + i;
                        texto.Rows = 6;
                        texto.Columns = 70;
                        aux.ContentContainer.Controls.Add(texto);
                    }                    
                }
                _vista.AccordionCtrl.Panes.Add(aux);
            }
        }

        public Entidad _Ejecutar()
        {
            _comando = FabricaComando.CrearPintar((_generico as Plantilla).Id);
            _vista.valores = _comando.Ejecutar();
            return null;
        }
    }
}